package zyd.ch7_2_mybatisbasic.repository;
import org.apache.ibatis.annotations.Param;
import zyd.ch7_2_mybatisbasic.entity.User;
import zyd.ch7_2_mybatisbasic.entity.UserMy;
import java.util.List;
import java.util.Map;
//@Mapper
public interface UserMapper {
     List<User> selectAll();//基础 无参数传递，返回类型是JavaBean
     List<UserMy> selectAllByResultMap();//类名属性名称和数据库表列字段不一致，使用resultmap自定义范围值
     User selectOne(Integer id);//基础 int类型参数传递，返回类型是JavaBean
     User selectOneByUserName(String username);//基础 String类型参数传递，返回类型是JavaBean
     int updateUserByColumn(Map<String,Object> map);//map类型参数传递，返回类型是int
     List<User> selectUserByColumn(Map<String,Object> map);//map类型参数传递，返回类型是JavaBean
     List<User> selectUserByColumn2(User user);//参数传递：JavaBean类型，返回类型是JavaBean
     List<User> selectUserByColumn3(@Param("username")String username,@Param("age") Integer age);//使用@Param传递多个参数 返回类型是JavaBean
     int insertUser(User user);//基础 参数传递:JavaBean类型，返回类型：int
     int deleteUserById(Integer id);//基础 参数传递:int类型，返回类型：int
    List<Map<String, Object>> selectAllUserMap();//参数传递:无，返回类型：Map

    /*动态Sql*/
     List<User> getUsersByIds(List<Integer> ids);//foreach 执行批量查询 参数是List类型 返回JavaBean类型

}
